package com.baofu.paycore.manager.storer;

import com.baofu.paycore.manager.model.withdraw.WithdrawBO;
import com.baofu.paycore.manager.model.withdraw.WithdrawFundBO;

/**
 * 提现单
 *
 * User: xin deng  Date: 16/6/3 ProjectName: paycore Version: 1.0
 */
public interface WithdrawOrderRepository extends OrderRepository<WithdrawBO>{

    /**
     * 依payNo加载订单
     *
     * @param payNo     支付单号
     * @return          提现单
     */
    WithdrawBO loadOrderByPayNo(String payNo);

    /**
     * 依payNo加载订单
     *
     * @param payNo     支付单号
     * @return          提现单
     */
    WithdrawBO loadByPayNo(String payNo);

    /**
     * 解冻提现单入表
     *
     * @param withdrawBO     解冻提现单
     * @return          提现单
     */
    void addUnfreezeWithdrawOrder(WithdrawBO withdrawBO);

    /**
     * 重发订单入库
     * @param withdrawFundBO
     * @param operater
     */
    void addRetryOrder(WithdrawFundBO withdrawFundBO,String operater);

    void updateRetry(WithdrawBO withdrawBO);
}
